package quit_all_group

type UserGroupOp struct {
	Id         int64  `bson:"id"`    //用户群自增id，单独申请，可用于查找分页，根据需求与其他字段建立组合索引，unique
	UId        string `bson:"uid"`   //用户id，与gid组合索引，唯一
	GId        string `bson:"gid"`   //用户加入的群id
	State      int8   `bson:"state"` //状态 1：加入，2：关注， 3：申请加入，4：退出
	Role       int    `bson:"role"`  //角色，0：普通成员，30：管理员，60：群主
	CreateTime int64  `bson:"ct"`    //创建时间戳，毫秒级
	UpdateTime int64  `bson:"ut"`    //更新时间错，毫秒级
}

type Group struct {
	GId         string `bson:"_id" grpc:"Id"`           //群id，对照id 设计文档
	Id          int64  `bson:"id"`                      //群数字id，群的自增id，与_id对应，可用于查找分页，根据需求与其他字段建立组合索引，unique
	Name        string `bson:"name" grpc:"Name"`        //群昵称
	Desc        string `bson:"desc" grpc:"Desc"`        //群简介
	OwnerId     string `bson:"oid" grpc:"OwnerId"`      //群主ID
	Image       string `bson:"image" grpc:"ImageResId"` //群头像资源ID
	Notice      string `bson:"notice" grpc:"Notice"`    //群公告
	Nums        int32  `bson:"nums" grpc:"Nums"`        //群成员数量
	Limit       int32  `bson:"limit" grpc:"Limit"`      //限制数量（50）
	CreateTime  int64  `bson:"ct" grpc:"CreateTime"`    //注册时间戳，毫秒级
	UpdateTime  int64  `bson:"ut"`                      //更新时间戳，毫秒级
	GroupShowId int64  `bson:"gsid"`                    //群的展示ID
}
type GroupMember struct {
	Id           int64  `bson:"id"`     //群成员自增id，单独申请，可用于查找分页，根据需求与其他字段建立组合索引，unique
	UId          string `bson:"uid"`    //用户id
	GId          string `bson:"gid"`    //所属群id
	State        int8   `bson:"state"`  //状态，0：申请加入，1：已加入
	Role         int    `bson:"role"`   //角色，0：普通成员，30：管理员，60：群主
	Reason       string `bson:"reason"` //申请加入时的申请理由
	CreateTime   int64  `bson:"ct"`     //创建时间戳，毫秒级
	JoinTime     int64  `bson:"jt"`     //加入时间，毫秒
	UpdateTime   int64  `bson:"ut"`     //更新时间戳，毫秒级
	LastPostTime int64  `bson:"lpt"`    //最后发帖时间，毫秒级
}
